using System;
using System.Collections.Generic;
using System.IO;
using MEA.AE_Data;
using MEA.AE_Data.Access;
using MEA.AE_Data.Config;

namespace MEA.AE_BusinessLogic
{
	public interface IBaseService
	{
		IECU_Data EcuData { get; }

		IECU_Access EcuAccess { get; }

		ConfigData.e_ECUID EcuId { get; }

		event BaseService.AddConsoleHandler ev_AddConsoleEvent;

		event EventHandler ev_DTCCleared;

		event ChangingHandler ev_ECUCautionLampChanged;

		event EventHandler ev_ECUDataUpdated;

		event ChangingHandler ev_ECUOnlineChange;

		event BaseService.LogFehlerHandler ev_LogFehler;

		List<byte> AuxService(ConfigKWP.e_kwpServices sid, List<byte> additionalSendlist);

		void CommunicationStart(bool disableTimeoutMessage);

		void CommunicationStop();

		void Diagnose_start(uint mode);

		void Diagnose_stop();

		void DTCClear();

		DTC[] DTCListRead();

		void DTCOff();

		void DTCOn();

		void ECU_Reset();

		void ECUCodingWrite();

		bool ECUisOnline();

		void ECULeaveBootMode();

		void EngineInfoUpdate();

		void EngineInfoUpdateXML(Stream mstream);

		void EngineSerialWrite(byte[] serial);

		void EngineTotalEngineTimeUpdate(string totalTime);

		void EngineUptime_Reset();

		void ErrorReportNegResponse(byte fehlerid);

		void IQAInitialize1(bool coding);

		void IQAInitialize2();

		void IQAReadCyl(int nr);

		void IQAWriteCyl(int nr, byte[] code);

		void LIDDataWrite();

		void RecManDatLogConfig_Read();

		void RecManDatLogConfig_Write();

		void RecManFormat1();

		void RecManFormat2();

		void RTCRead();

		void RTCWrite(byte[] time);

		void SecurityDetectAccessRights(bool informUser);

		void SecuritySeedKey(byte mode);

		int[,] Statistics_Read();

		void Statistics_Reset();

		void TesterPresentHalt();

		void TesterPresentStart(int time);

		string TransformSecToTime(double zeit);

		void USBDongleClose();

		ConfigSecurity.e_USBDongleTypes BaseServSecurityAccessRight();
	}
}
